package com.base;
// package com.base.membership;
//
// import java.io.FileNotFoundException;
// import java.io.IOException;
// import java.sql.SQLException;
// import java.util.ArrayList;
// import java.util.HashMap;
// import java.util.List;
//
// import javax.servlet.ServletException;
// import javax.servlet.http.HttpSession;
//
// import org.apache.commons.logging.Log;
// import org.apache.commons.logging.LogFactory;
// import org.jdom.Element;
// import org.jdom.JDOMException;
//
// import com.soar.IPermission;
// import com.soar.config.Config;
// import com.soar.context.Environment;
// import com.soar.context.PropertiesHelper.SoarProperties;
// import com.soar.interceptor.AbsActionAuthInterceptor;
// import com.soar.jdbc.dbhelper.DbParameter;
// import com.soar.jdbc.dbhelper.DbTemplates;
// import com.soar.jdbc.dbhelper.SameTypes;
// import com.soar.jdbc.dbhelper.SortTypes;
// import com.soar.jdbc.dbhelper.SqlTypes;
// import com.soar.jdbc.dbhelper.WhereTypes;
// import com.soar.util.FileUtils;
// import com.soar.util.StringUtils;
// import com.soar.util.xml.XmlHelper;
//
// /**
// * 获取登录用户菜单
// * @author dingxude
// * com.base.membership.Permission
// * 2013-2-26
// */
// public class Permission implements IPermission
// {
// private static final Log log = LogFactory.getLog(Permission.class);
//
// private String wpsHtml;
//
// private String wpModelHtml;
//
// private LoginUser loginUser;
//
// public String getPermissionSource(Environment env ,LoginUser user) throws ServletException
// {
// try
// {
// StringBuffer xml = new StringBuffer();
// xml.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
// xml.append("<mm>");
// // 用户信息
// xml.append("<user>");
// xml.append("<userId>").append(user.getUserId()).append("</userId>");
// xml.append("<userName>").append(user.getUserName()).append("</userName>");
// xml.append("<userRealName>").append(user.getUserRealName()).append("</userRealName>");
// xml.append("</user>");
// // 用户权限信息
// xml.append("<wps>");
// DbParameter param = new DbParameter("SYS_USER_REF_ROLE T1,SYS_ROLE_REF_MENU T2,SYS_MENU T3");
// param.setSelectFields("T3.ID,T3.PID,T3.MU_CODE,T3.MU_NAME,T3.MU_TYPE,T3.MU_URL,T2.MU_DISPLAY,T3.OPEN_MODE,T3.MU_POSTION,T3.MULTI_MU,T3.THIRD_MU_MODE");
// param.setWhereParams("T1.ROLE_ID", "T2.ROLE_ID", SqlTypes.CUSTOM, WhereTypes.AND, SameTypes.YES);
// param.setWhereParams("T2.MENU_ID", "T3.ID", SqlTypes.CUSTOM, WhereTypes.AND, SameTypes.YES);
// param.setWhereParams("T1.USER_ID", user.getUserId(), SqlTypes.VARCHAR, WhereTypes.NOT, SameTypes.YES);
// param.setOrderParams("T3.MU_TYPE,T3.MU_CODE", SortTypes.ASC);
// List<HashMap<String, ?>> list = DbTemplates.select(env.getConnection(), param);
// for (HashMap<String, ?> hashMap : list)
// {
// if (hashMap.get("MU_TYPE").toString().equals("1")) // 工作平台
// {
// xml.append("<wp name=\"").append(hashMap.get("MU_CODE").toString()).append("\" value=\"").append(hashMap.get("MU_NAME").toString()).append("\" display=\"").append(hashMap.get("MU_DISPLAY").toString()).append("\" url=\"").append(hashMap.get("MU_URL").toString()).append("\" muPostion=\"").append(hashMap.get("MU_POSTION").toString()).append("\" multiMu=\"").append(hashMap.get("MULTI_MU").toString()).append("\" openMode=\"").append(hashMap.get("OPEN_MODE").toString()).append("\" >");
// for (HashMap<String, ?> group : list)
// {
// if (group.get("PID").toString().equals(hashMap.get("ID").toString()) && group.get("MU_TYPE").toString().equals("2")) // 功能组
// {
// xml.append("<modelgroup value=\"").append(group.get("MU_NAME").toString()).append("\">");
// for (HashMap<String, ?> model : list)
// {
// if (model.get("PID").toString().equals(group.get("ID").toString())&&"3".equals(model.get("MU_TYPE").toString()))
// {
// xml.append("<model value=\"").append(model.get("MU_NAME").toString()).append("\" icon=\"mm_icon_000.png\" url=\"").append(model.get("MU_URL").toString()).append("\" openMode=\"").append(model.get("OPEN_MODE").toString()).append("\" thirdMuMode=\"").append(model.get("THIRD_MU_MODE").toString()).append("\"/>");
// }
// }
// xml.append("</modelgroup>");
// }
// }
// xml.append("</wp>");
// }
// else
// {
// break;
// }
// }
// xml.append("</wps>");
// xml.append("</mm>");
//
// return xml.toString();
// }
// catch (SQLException e)
// {
// throw new ServletException("权限获取失败！");
// }
// }
// public String getPermissionSource() throws ServletException
// {
// try
// {
// // String userName = session.getAttribute(CASFilter.CAS_FILTER_USER).toString();
// // Object[] param = new Object[] { SoarProperties.SOAR_WEB_APP_CODE, userName };
// // Object[] r = ServicesClient.invoke(SoarProperties.SOAR_WEB_PERMISSION_URL,SoarProperties.SOAR_WEB_PERMISSION_FUN, param);
// // return r[0].toString();
// String path = java.net.URLDecoder.decode(Thread.currentThread().getContextClassLoader().getResource("/mm.xml").getPath(), "utf-8");
// return FileUtils.fileToString(path);
// }
// catch (Exception e)
// {
// log.error(e.getMessage());
// throw new ServletException("访问权限系统失败;" + e.getMessage());
// }
// }
// @SuppressWarnings("unchecked")
// public void parserPermission(String xml,String isManager) throws ServletException
// {
// try
// {
// this.loginUser = new LoginUser();
// XmlHelper xmlHelper = new XmlHelper(xml);
//
//
// List text = xmlHelper.getChild(new String[]{"approle"}).getChildren() ;
//
// for(int i = 0 ; i < text.size() ; i++)
// {
// if("KFZX".equals(((Element)text.get(i)).getText()))
// {
// this.loginUser.setParam("service","1") ;
// }
// }
//
// String jobNum = xmlHelper.getChild(new String[]{"user","jobNum"}).getText() ;
// String interfc = xmlHelper.getChild(new String[]{"user","interfc"}).getText() ;
//
// //解析用户信息
// this.loginUser.setUserId(xmlHelper.getChild(new String[]{"user","userId"}).getText());
// this.loginUser.setUserName(xmlHelper.getChild(new String[]{"user","userName"}).getText());
// this.loginUser.setUserRealName(xmlHelper.getChild(new String[]{"user","realName"}).getText());
// this.loginUser.setUserDeptId(xmlHelper.getChild(new String[]{"dept","deptId"}).getText()) ;
// this.loginUser.setUserDeptName(xmlHelper.getChild(new String[]{"dept","deptName"}).getText()) ;
//
// this.loginUser.setParam("isManager",isManager);
// this.loginUser.setParam("jobNum",xmlHelper.getChild(new String[]{"user","jobNum"}).getText());
// this.loginUser.setParam("interfc",xmlHelper.getChild(new String[]{"user","interfc"}).getText());
// this.loginUser.setParam("queue",xmlHelper.getChild(new String[]{"user","queue"}).getText());
// this.loginUser.setParam("rolecode",xmlHelper.getChild(new String[]{"approle","rolecode"}).getText());
//
// StringBuffer html = new StringBuffer();
// // StringBuffer wps_html = new StringBuffer("<div id=\"zone_main_menu\" style=\"left:"+Config.getConfig("MENU_LEFT_MARGIN")+"px\">\n");
// StringBuffer wps_html = new StringBuffer("<div id=\"zone_main_menu\" style=\"left:35px\">\n");
// wps_html.append("<ul id=\"zone_main_menu_ul\">\n") ;
// Element wpsEle = xmlHelper.getChild("wps");
// List<Element> wps = wpsEle.getChildren();
// boolean display ;
// for(int i = 0 ; i < wps.size() ; i++)
// {
// Element wp = (Element) wps.get(i);
// String muPostion = wp.getAttribute("muPostion").getValue();// 一级菜单位置1左2右
// String multiMu = wp.getAttribute("multiMu").getValue();// 是否需要二三级菜单0不需要1需要
//
// display = wp.getAttribute("display").getValue().equals("1") ? true : false; // 工作平台，是否默认显示
// boolean _display = true; // 功能组是否展开
// if (display)
// {
// // 左右判断显示样式
// if ("1".equals(muPostion))// 左侧默认显示
// {
// wps_html.append("<li class=\"active\"");
// }
// else
// {
// wps_html.append("<li class=\"active assistant\"");
// }
// // 是否需要二三级菜单+打开方式判断是否需要点击事件
// if ("1".equals(multiMu)&&"1".equals(wp.getAttribute("openMode").getValue()))// 需要
// {
// wps_html.append(" onclick=\"showWp(" + i + ",this);layoutBar();\">");
// }
// else
// {
// if ("3".equals(wp.getAttribute("openMode").getValue()))
// {
// wps_html.append(" onclick=\"").append(wp.getAttribute("url").getValue()).append("\"");
// }
// else
// {
// wps_html.append(" onclick=\"changeMenu('").append(SoarProperties.SOAR_WEB_CONTEXTROOT).append(wp.getAttribute("url").getValue()).append("')\"");
// }
// wps_html.append(">");
// }
// // <table><tr><td></td><td></td><td></td></tr><table>
// wps_html.append("<table  border=\"0\"  cellpadding=\"0\" cellspacing=\"0\"><tr><td class=\"tl\"></td><td class=\"tc\"><nobr>").append(wp.getAttribute("value").getValue()).append("</nobr></td><td class=\"tr\"></td></tr></table>").append("</li>\n");
//
// html.append("<div id=\"zone_side_menu" + i + "\" class=\"zone_side_menu\">");
// display = false;// 只有一组菜单默认显示
// }
// else
// {
// // 左右判断显示样式
// if ("1".equals(muPostion))// 左侧默认显示
// {
// wps_html.append("<li");
// }
// else
// {
// wps_html.append("<li class=\"assistant\"");
//
// }
// // 是否需要二三级菜单判断是否需要点击事件
// if ("1".equals(multiMu))// 需要
// {
// wps_html.append(" onclick=\"showWp(" + i + ",this);layoutBar();\">");
// }
// else
// {
// if ("3".equals(wp.getAttribute("openMode").getValue()))
// {
// wps_html.append(" onclick=\"").append(wp.getAttribute("url").getValue()).append("\"");
// }
// else
// {
// wps_html.append(" onclick=\"changeMenu('").append(SoarProperties.SOAR_WEB_CONTEXTROOT).append(wp.getAttribute("url").getValue()).append("')\"");
// }
// wps_html.append(">");
// }
//
// wps_html.append("<table border=\"0\"  cellpadding=\"0\" cellspacing=\"0\"><tr><td class=\"tl\"></td><td class=\"tc\"><nobr>").append(wp.getAttribute("value").getValue()).append("</nobr></td><td class=\"tr\"></td></tr></table>").append("</li>\n");
// html.append("<div id=\"zone_side_menu" + i + "\" class=\"zone_side_menu\" style=\"display:none\">");
// }
// List<Element> modelgroups = wp.getChildren();
// // 按需加载二三级菜单
// if ("1".equals(wp.getAttribute("multiMu").getValue()))
// {
// for (Element modelgroup : modelgroups)
// {
// html.append("	   <div class=\"wp\">\n");
// html.append("        <div class=\"wp_header\" onclick=\"showModelGroupItems(this)\">").append(modelgroup.getAttribute("value").getValue()).append("</div>");
// if (_display)
// {
// html.append("<ul>");
// // _display = false;
// }
// else
// {
// html.append("<ul style=\"display:none\">");
// }
// List<Element> models = modelgroup.getChildren();
// for (Element model : models)
// {
// /**
// * 三级菜单模式1普通2特殊
// */
// // 1普通模式
// if ("1".equals(model.getAttribute("thirdMuMode").getValue()))
// {
// if ("2".equals(model.getAttribute("openMode").getValue()))// 新窗口打开
// {
// html.append("<li onclick=\"changeMenu('").append(SoarProperties.SOAR_WEB_CONTEXTROOT).append(model.getAttribute("url").getValue()).append("','").append(model.getAttribute("openMode").getValue()).append("')\">").append(model.getAttribute("value").getValue())
// .append("</li>");
// }
// else
// {
// html.append("<li onclick=\"changeMenu('").append(SoarProperties.SOAR_WEB_CONTEXTROOT).append(model.getAttribute("url").getValue()).append("')\">").append(model.getAttribute("value").getValue()).append("</li>");
// }
// }
// // 2特殊模式(HTML格式)
// else if ("2".equals(model.getAttribute("thirdMuMode").getValue()))
// {
// html.append("<li>").append(model.getAttribute("url").getValue()).append("</li>");
// }
// }
// html.append("</ul>\n");
// html.append("</div>\n");
// }
// }
// html.append("</div>\n");
// }
// wps_html.append("</ul>\n") ;
// wps_html.append("</div>\n") ;
//
// wps_html.append("<div style='POSITION: absolute;left:8px;top:1px;'><img src=\""+SoarProperties.SOAR_WEB_RESOURCESROOT+"/default/images/logo.gif\"/></div>") ;
//
// if("1".equals(this.loginUser.getParam("service")))
// {
// wps_html.append("<div style='POSITION: absolute;right:400px;top:10px;'><span>工号："+jobNum+"&nbsp;分机号："+interfc+"</span>&nbsp;当前状态：<span id='mystate'></span>&nbsp;&nbsp;|&nbsp;&nbsp;<a href='javascript:void(0)' onclick='toOnline()'>上线</a>&nbsp;&nbsp;<a href='javascript:void(0)' onclick='toLeave()'>暂离</a>&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;<a id='page_place_queue_list' href='javascript:void(0)' onclick='openQueueList()' title='等待队列'>队列(0)</a></div>")
// ;
// }
//
// this.wpModelHtml = html.toString();
// this.wpsHtml = wps_html.toString();
// }
// catch (Exception e)
// {
// log.error(e.getMessage());
// throw new ServletException("解析权限xml出现异常;" + e.getMessage());
// }
// }
// public void initPermission(HttpSession session,String userappinfo,String isManager) throws ServletException, JDOMException, IOException
// {
// this.parserPermission(userappinfo,isManager);
// session.setAttribute(AbsActionAuthInterceptor.INTERCEPTOR_ACTION_AUTH,parserAuth(userappinfo));
// session.setAttribute(SoarProperties.SOAR_BM_WP_SESSION_ID, this.wpsHtml);
// session.setAttribute(SoarProperties.SOAR_BM_MENU_SESSION_ID, this.wpModelHtml);
// session.setAttribute(SoarProperties.SOAR_BM_LOGINUSER_SESSION_ID, this.loginUser);
// }
// @SuppressWarnings("unchecked")
// public HashMap<String,ArrayList<String>> parserAuth(String userappinfo) throws JDOMException, IOException
// {
// HashMap<String,ArrayList<String>> authInfo = new HashMap<String, ArrayList<String>>();
//
// XmlHelper xmlHelper = new XmlHelper(userappinfo);
// Element wpsEle = xmlHelper.getChild("wps");
// List<Element> wps = wpsEle.getChildren();
// for(int i = 0 ; i < wps.size() ; i++)
// {
// Element wp = (Element)wps.get(i) ;
// String attribute = wp.getAttribute("url").getValue() ;
// authInfo = setAuths(attribute,authInfo,"") ;
// List<Element> modelgroups = wp.getChildren();
// for(int j = 0 ; j < modelgroups.size() ; j++)
// {
// Element modelgroup = (Element)modelgroups.get(j) ;
//
// List<Element> models = modelgroup.getChildren();
// for(int k = 0 ; k < models.size() ; k++)
// {
// Element model = (Element)models.get(k) ;
// String attribute2 = model.getAttribute("url").getValue() ;
// String methods = model.getAttribute("methods").getValue() ;
// authInfo = setAuths(attribute2,authInfo,methods) ;
// }
//
// }
// }
// return authInfo ;
// }
// private HashMap<String,ArrayList<String>> setAuths(String url,HashMap<String,ArrayList<String>> authInfo,String methods)
// {
// //普通url
// if(StringUtils.isNoEmpty(url)&&url.indexOf("/")==0)
// {
// //不带方法名
// if(url.indexOf("!")<0)
// {
// String action = url.substring(0,url.lastIndexOf(".")) ;
//
// //未写入过该action
// if(authInfo.get(action)==null)
// {
// ArrayList<String> t = new ArrayList<String>() ;
// t.add("execute") ;
// if(StringUtils.isNoEmpty(methods))
// {
// String[] method = methods.split(",") ;
// for(int z = 0 ; z < method.length ; z++)
// {
// t.add(method[z]) ;
// }
// }
// authInfo.put(action, t) ;
// }
// //写入过该action，则判断是否已加入execute方法,未有加入则加入
// else
// {
// ArrayList<String> info = authInfo.get(action) ;
// if(!info.contains("execute"))
// {
// info.add("execute") ;
// }
// if(StringUtils.isNoEmpty(methods))
// {
// String[] method = methods.split(",") ;
// for(int z = 0 ; z < method.length ; z++)
// {
// info.add(method[z]) ;
// }
// }
//
// }
// }
// //带方法名
// if(url.indexOf("!")>0)
// {
// String action = url.substring(0,url.lastIndexOf("!")) ;
// String method = url.substring(url.lastIndexOf("!")+1,url.lastIndexOf(".")) ;
// //未写入过该action
// if(authInfo.get(action)==null)
// {
// ArrayList<String> t = new ArrayList<String>() ;
// t.add(method) ;
// if(StringUtils.isNoEmpty(methods))
// {
// String[] m = methods.split(",") ;
// for(int z = 0 ; z < m.length ; z++)
// {
// t.add(m[z]) ;
// }
// }
// authInfo.put(action, t) ;
// }
// //写入过该action，则判断是否已加入execute方法,未有加入则加入
// else
// {
// ArrayList<String> info = authInfo.get(action) ;
// if(!info.contains(method))
// {
// info.add(method) ;
// }
// if(StringUtils.isNoEmpty(methods))
// {
// String[] m = methods.split(",") ;
// for(int z = 0 ; z < m.length ; z++)
// {
// info.add(m[z]) ;
// }
// }
// }
// }
// }
// return authInfo ;
// }
// public static void main(String[] args) throws FileNotFoundException, ServletException, IOException
// {
//
// //parserAuth("") ;
// }
// public String getWpsHtml()
// {
// return wpsHtml;
// }
//
// public String getWpModelHtml()
// {
// return wpModelHtml;
// }
// public void initPermission(HttpSession session) throws ServletException
// {
//
// }
// public void parserPermission() throws ServletException
// {
//
// }
// }
